package br.com.minhascontas.DAO;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import br.com.minhascontas.model.Grupo;

public class GrupoDAO extends SQLiteOpenHelper{
	
	private SQLiteDatabase database;
	private static final int VERSAO = 1;
	private static final String DATABASE = "minhasContas";
	private static final String TABELA = "Grupo";
	private static final String TABELA_ITEM = "itemGrupo";
	
	private static final String[] COLUNAS = { "id", "nome" };
	
	public GrupoDAO(Context context) {
		super(context, DATABASE, null, VERSAO);
		// TODO Auto-generated constructor stub
	}
	
	public void open() throws SQLException { // chama o onCreate
		database = this.getWritableDatabase();
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		
		/*String sql =  "CREATE TABLE " + TABELA + " (id INTEGER PRIMARY KEY, "
				+ " nome TEXT UNIQUE NOT NULL);";
		
		//db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy)
		db.execSQL(sql);
		
		String sqlItem =  "CREATE TABLE "+ TABELA_ITEM +" (id INTEGER PRIMARY KEY,  nome TEXT UNIQUE NOT NULL, idGrupo INTEGER, FOREIGN KEY(idGrupo) REFERENCES "+TABELA+ " (id));";
		
		db.execSQL(sqlItem);*/
		
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		String sql = "DROP TABLE IF EXISTS " + TABELA;
		db.execSQL(sql);
		onCreate(db);
	}
	
	public void inserir(Grupo grupo){
		ContentValues values = new ContentValues();
		values.put("nome", grupo.getNome());
		getWritableDatabase().insert(TABELA, null, values);
	}
	
	public List<Grupo> listarGrupo(){
		List<Grupo> grupos = new ArrayList<Grupo>();
		
		String strSql = "select * from " + TABELA + ";";
		
		 Cursor c = getWritableDatabase().rawQuery(strSql, null);
		 
		 while (c.moveToNext()){
			 Grupo Grupo = new Grupo();
			 Grupo.setId(c.getLong(0));
			 Grupo.setNome(c.getString(1));
			 grupos.add(Grupo);
		 }
		
		return grupos;
	}
	public List<Grupo> getLista() {
		List<Grupo> Grupos = new ArrayList<Grupo>();

		Cursor c = getWritableDatabase().query(TABELA, COLUNAS, null, null, null,
				null, null);

		while (c.moveToNext()) {
			Grupo Grupo = new Grupo();
			Grupo.setId(c.getLong(0));
			Grupo.setNome(c.getString(1));

			Grupos.add(Grupo);
		}
		c.close();

		return Grupos;
	}


}
